from django.db import models

# Create your models here.

from django.db import models

# Create your models here.
class Admin_User(models.Model):  #管理员的模型

    admin_id = models.AutoField(primary_key=True)  #管理员的id号主键，唯一
    admin_name = models.CharField(max_length=10,null=False) #管理员名
    admin_password = models.CharField(max_length=20, null=False) #管理员密码
    admin_avatar = models.CharField(max_length=200, null=False)  #管理员头像
    admin_permission = models.IntegerField(null=False)  #管理员权限

    class Meta:
        # managed = False
        managed = True
        db_table = 'wyy_admin'

""""
抑者和释抑者都归为同一类，只是身份不同 role不同
"""
class User(models.Model):  #抑者&&释抑者
    uid = models.AutoField(primary_key=True)  #用户id号
    username = models.CharField(max_length=50)  #用户昵称
    password = models.CharField(max_length=50)  #用户密码
    avatar = models.CharField(max_length=200,null=True,blank=True) #用户头像,头像可以为空
    phone = models.CharField(max_length=11) #用户电话号码 不允许为空
    email = models.CharField(max_length=200, blank=True, null=True) #用户邮箱
    personality = models.CharField(max_length=200)  #个性签名
    description = models.CharField(max_length=200)  #个人介绍
    registration_data = models.DateTimeField(auto_created=True,blank=True)  #注册时间
    isActive = models.IntegerField(default=0,blank=True)   #0表示未激活
    isDelete = models.IntegerField(default=0,blank=True)  #0表示未删除
    role = models.CharField(max_length=10)  # '001' 表示释抑者， '002'表示抑者, 不允许为空


    #该用户的创作、加入的讨论组、关注的sy, 收藏的文章，历史浏览记录

    class Meta:
        # managed = False
        managed = True
        db_table = 'wyy_user'



class Articles(models.Model):  #文章
    aid = models.AutoField(primary_key=True)   #文章id
    article_title = models.CharField(max_length=50)  #文章标题
    article_theme_id = models.ForeignKey('Article_theme',models.DO_NOTHING, db_column='a_theme_id', related_name='articles',null=True)  #文章的主题
    #可以通过theme.articles 查询到某个主题下的所有文章
    article_pubtime = models.DateTimeField(auto_created=True)
    article_author_id = models.ForeignKey('User',models.DO_NOTHING, db_column='uid', related_name='articles', null=True)  #文章的作者
    #某位用户可以通过user.articles 查询到自身的所有文章
    article_cover = models.CharField(max_length=100,null=True)  #文章封面
    article_content = models.TextField(max_length=4000)  #文章内容
    article_view_count = models.IntegerField(blank=True,default=0)  #浏览量
    article_collect_count = models.IntegerField(blank=True, default=0)  #收藏数量
    article_up_count = models.IntegerField(blank=True, default=0)  #文章点赞数量
    article_comment_count = models.IntegerField(blank=True, default=0) #文章评论数量

    class Meta:
        # managed = False
        managed = True
        db_table = 'wyy_articles'

class Article_theme(models.Model):   #文章主题
    a_theme_id = models.AutoField(primary_key=True)  # 主题的id号
    a_theme_name = models.CharField(max_length=100)
    """
        一个主题下有多个文章
        一个文章有多个主题分类
    """

    class Meta:
        managed = False
        # managed = True
        db_table = 'wyy_art_theme'

class Article_comment(models.Model):
    #文章评论和文章是多对一的关系
    a_comment_id = models.AutoField(primary_key=True)
    aid = models.ForeignKey('Articles', models.DO_NOTHING,db_column='aid',related_name='a_comments',null=True)   #针对哪一个文章的评论
    #可以通过.comments.all()查询到一篇文章的所有评论
    uid = models.ForeignKey('User', models.DO_NOTHING,db_column='uid', related_name='a_comments', null=True)  #是哪位用户发表的文章评论
    #可以通过.comments.all() 查询到一个用户的所有评论
    #评论的点赞数量，评论发出的时间，评论的内容
    up_count = models.IntegerField(blank=True,default=0)
    pub_time = models.DateTimeField(blank=True)  #评论的发布时间
    content = models.CharField(max_length=200,blank=True)  #评论的内容

    class Meta:
        managed = False
        # managed = True
        db_table = 'wyy_article_comment'


class Question_theme(models.Model):  #问题的主题
    q_theme_id = models.AutoField(primary_key=True)  # 主题的id号
    q_theme_name = models.CharField(max_length=200)

    """
        每个主题下会有很多的问题
        每个问题也会有很多的主题
    """
    class Meta:
        managed = False
        # managed = True
        db_table = 'wyy_q_theme'

class Questions(models.Model):  #问题，论点、最新问题
    q_id = models.AutoField(primary_key=True)
    q_theme_id = models.ForeignKey('Question_theme',models.DO_NOTHING, db_column='q_theme_id', related_name='questions', null=True)
    q_description = models.CharField(max_length=500)   #问题的描述
    q_answer_count = models.IntegerField(blank=True, default=0)  #问题答案的数量

    class Meta:
        managed = False
        # managed = True
        db_table = 'wyy_questions'


class  Q_Answer(models.Model):  #问题的回答
    answer_id = models.AutoField(primary_key=True)
    qid = models.ForeignKey('Questions',models.DO_NOTHING, db_column='q_id', related_name='q_answers', null=True)  #是针对那个问题的回答
    #查询出一个问题的所有回答
    answer_user_id = models.ForeignKey('User', models.DO_NOTHING, db_column='uid', related_name='q_answers', null=True)  # 是哪位用户回答的问题
    #查询出一个用户的所有回答
    answer_date = models.DateTimeField(auto_created=True)   #回答问题的时间
    answer_content = models.TextField(blank=True)   #回答内容
    up_count = models.IntegerField(blank=True, default=0)  #回答点赞数量
    comment_count = models.IntegerField(blank=True, default=0)  #回答评论数量
    transmit_count = models.IntegerField(blank=True, default=0)  #回答转发的数量

    class Meta:
        managed = False
        # managed = True
        db_table = 'wyy_q_answer'

class Q_answer_comment(models.Model):   #问题回答的评论
    answer_comment_id = models.AutoField(primary_key=True)
    answer_id = models.ForeignKey('Q_Answer', models.DO_NOTHING, db_column='answer_id', related_name='q_comments',null=True)  # 针对哪一个回答的评论
    uid = models.ForeignKey('User', models.DO_NOTHING, db_column='uid', related_name='q_comments', null=True)  # 是哪位用户发表的回答的评论
    # 评论的点赞数量，评论发出的时间，评论的内容
    up_count = models.IntegerField(blank=True,default=0)
    pub_time = models.DateTimeField(blank=True)  # 评论的发布时间
    content = models.CharField(max_length=200)  # 评论的内容

    class Meta:
        managed = False
        # managed = True
        db_table = 'wyy_q_answer_comment'   #针对问题回答的评论表


class Discussion_groups(models.Model):  #讨论组
    dis_id = models.AutoField(primary_key=True)
    dis_topic_id = models.ForeignKey('Dis_topic', models.DO_NOTHING, db_column='topic_id', related_name='groups', null=True)
    dis_pub_time = models.DateTimeField(auto_created=True)  #讨论组创建时间

    class Meta:
        managed = False
        # managed = True
        db_table = 'wyy_dis_groups'

class Dis_topic(models.Model):
    topic_id = models.AutoField(primary_key=True)
    topic_name = models.CharField(max_length=100,blank=True)

    class Meta:
        managed = False
        # managed = True
        db_table = 'wyy_dis_topic'

class Dis_answer(models.Model):   #讨论组的回答，与只讨论组有关
    #这个问题针对哪一个组的回答，谁回答的
    dis_answer_id = models.AutoField(primary_key=True)
    dis_id = models.ForeignKey('Discussion_groups', models.DO_NOTHING, db_column='dis_id', related_name='dis_answers', null=True)
    uid = models.ForeignKey('User', models.DO_NOTHING, db_column='uid', related_name='dis_answers', null=True)
    dis_answer_content = models.CharField(max_length=300, blank=True) #回答的内容
    answer_pub_time = models.DateTimeField(auto_created=True,blank=True)  #回答发布的时间

    class Meta:
        managed = False
        # managed = True
        db_table = 'wyy_dis_answer'






